package com.hghivln.service;

import com.hghivln.pojo.domain.OrderCharge;
import com.hghivln.pojo.domain.OrderChargeItem;
import com.hghivln.pojo.dto.OrderChargeDto;
import com.hghivln.pojo.dto.OrderChargeFromDto;
import com.hghivln.pojo.vo.AjaxResult;

public interface OrderChargeService {

    /**
     * 根据挂号ID查询未支付的处方信息及详情
     *
     * @param regId 挂号ID
     * @return AjaxResult
     */
    AjaxResult getNoChargeCareHistoryByRegId(String regId);

    /**
     * 保存订单和订单详情
     *
     * @param orderChargeFromDto 收费订单
     * @return String
     */
    String saveOrderAndItems(OrderChargeFromDto orderChargeFromDto);

    /**
     * 支付成功回调
     *
     * @param orderId       商家订单号 收费ID
     * @param payType       支付类型
     * @param payPlatformId 支付订单号
     * @return AjaxResult
     */
    AjaxResult paySuccess(String orderId, String payType, String payPlatformId);

    /**
     * 根据订单ID查询订单信息【验证是否支付成功】
     * @param orderId 商家订单号 收费ID
     * @return
     */
    OrderCharge queryOrderChargeByOrderId(String orderId);

    /**
     * 分页查询所有的订单
     * @param orderChargeDto
     * @return
     */
    AjaxResult selectAllOrderChargeForPage(OrderChargeDto orderChargeDto);

    /**
     * 根据订单ID查询订单详情
     * @param orderId 收费ID
     * @return
     */
    AjaxResult selectOrderChargeItemByOrderId(String orderId);

    /**
     * 根据详情ID查询订单详情信息
     * @param itemId 订单详情ID
     * @return OrderChargeItem
     */
    OrderChargeItem queryOrderChargeItemByItemId(String itemId);
}
